namespace Bowlus.FrontEnd.RequestRouting
{
    using System.Collections.Generic;

    using Bowlus.Common;

    public interface IRoutingConfigManager
    {
        string SiteName { get; }

        void Initialize();

        void UpdateApplicationHostsConfiguration(IEnumerable<ApplicationHost> availableApplicationHosts);

        void UpdateRoutingRules(IList<TenantDeployment> tenantDeployments);

        void DeleteRoutingRules(IEnumerable<TenantDeployment> tenantDeploymentsToBeDeleted);

        void ClearConfiguration();

        IEnumerable<string> GetApphostAddresses();
    }
}
